package com.jmb.api.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jmb.api.model.entity.Module;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jmb.api.vo.module.ModuleInfoVo;
import com.jmb.api.vo.module.ModuleUpdateVo;
import com.jmb.api.vo.module.ModuleVo;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;

import java.util.ArrayList;
import java.util.List;

/**
* @author jinbo
* @description 针对表【module】的数据库操作Service
* @createDate 2025-04-08 13:53:56
*/
public interface ModuleService extends IService<Module> {

    void saveModule(ModuleVo moduleVo);

    void updateModule(@Valid ModuleUpdateVo moduleUpdateVO);

    IPage<ModuleInfoVo> getModuleList(IPage<ModuleInfoVo> page, String projectName, String moduleName);

    ModuleInfoVo getModuleById(Integer moduleId);
    // 查询是否有模块存在
    Long getModuleCount(Integer moduleId);

    List<String> getModuleProjectId(@NotNull(message = "模块编号不能为空") Integer moduleId, @NotNull(message = "项目名称不能为空") Integer projectId);
    // 查询所有模块信息
    ArrayList<Module> getAllModule(Integer projectId);
}
